package example.jazztalk.common.model.query;

import com.ibm.team.repository.common.model.query.BaseSimpleItemQueryModel;
import com.ibm.team.repository.common.query.ast.IManyItemQueryModel;
import com.ibm.team.repository.common.query.ast.ISingleItemQueryModel;
import com.ibm.team.repository.common.query.ast.IStringField;
import example.jazztalk.common.model.query.impl.MessageQueryModelImpl;

/**
 * Defines the query model shared by both single and many valued Message references. 
 *
 * @generated
 * @NoImplement Clients must not implement this interface.
 */
public interface BaseMessageQueryModel extends BaseSimpleItemQueryModel {

	/** 
	 * Defines the query model for many valued Message references.
	 * 
	 * @generated
	 * @NoImplement Clients must not implement this interface.
	 */
	public interface ManyMessageQueryModel extends BaseMessageQueryModel, IManyItemQueryModel { /* For strict type checking */ };

    /** 
     * Defines the query model for single valued Message references.
     *
	 * @generated
	 * @NoImplement Clients must not implement this interface.
	 */
	public interface MessageQueryModel extends BaseMessageQueryModel, ISingleItemQueryModel {
		/**
		 * The root of Message queries.
		 * 
 	 	 * @generated
	 	 */
		public static final MessageQueryModel ROOT = new MessageQueryModelImpl(null, null);
	};

	/**
	 * Navigates into the <code>text</code> feature and returns the 
	 * query model at that path.
	 *
	 * @return the query model associated with the <code>text</code> feature
 	 * @generated
	 */
	public IStringField text(); 

}